
<script>
//  JavaScript 词法和语法的代码分析
// 利用正则文法 表示产生式

function scan(str) { // 难以管理
  let regexp = / |\n|\/\*([^*]|\*[^\/])*\*\/|\/\/[^\n]*|[1-9][0-9]*|0/g
  while(regexp.lastIndex < str.length) {
    let r = regexp.exec(str)
    console.log(JSON.stringify(r[0]))
  }

}



scan(`
  23333
  17
  456
  //hello world
  /*hello world*/
  /*charlie*/
`)


</script>